b541daf0bc9193dc0aa78b27efa610b26e49bec7,modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java,CodeGenerator,snippet,#Collection#String#boolean#String#ConfirmCallable#,569

Before Change


        }

        add1(src, "/**");
        add1(src, "* Configure cache.");
        add1(src, "*");
        add1(src, "* @param cacheName Cache name.");
        add1(src, "* @param storeFactory Cache store factory.");

After Change


            add1(src, "/**");
            add1(src, " * Create SQL Query descriptor for " + tbl + ".");
            add1(src, " *");
            add1(src, " * @return Configured query entity.");
            add1(src, " */");
            add1(src, "private static QueryEntity queryEntity" + valClsName + "() {");

            // Query entity.
            add2(src, "QueryEntity qryEntity = new QueryEntity();");
            add0(src, "");
            add2(src, "qryEntity.setKeyType(\"" + pkg + "." + pojo.keyClassName() + "\");");
            add2(src, "qryEntity.setValueType(\"" + pkg + "." + valClsName + "\");");

            add0(src, "");

            // Query fields.
            add2(src, "// Query fields for " + tbl + ".");
            add2(src, "LinkedHashMap<String, String> fields = new LinkedHashMap<>();");
            add0(src, "");

            for (PojoField field : pojo.fields())
                add2(src, "fields.put(\"" + field.javaName() + "\", \"" + javaTypeName(field) + "\");");

            add0(src, "");
            add2(src, "qryEntity.setFields(fields);");
            add0(src, "");

            // Indexes.
            Collection<QueryIndex> idxs = pojo.indexes();

            if (!idxs.isEmpty()) {
                add2(src, "// Indexes for " + tbl + ".");
                add2(src, "Collection<QueryIndex> idxs = new ArrayList<>();");
                add0(src, "");

                boolean firstIdx = true;

                for (QueryIndex idx : idxs) {
                    if (idx.getFields().size() == 1) {
                        Map.Entry<String, Boolean> fld = F.first(idx.getFields().entrySet());

                        add2(src, "idxs.add(new QueryIndex(\"" + fld.getKey() + "\", " + fld.getValue() + ", \"" +
                            idx.getName() + "\"));");
                        add0(src, "");
                    }
                    else {
                        add2(src, (firstIdx ? "QueryIndex " : "") + "idx = new QueryIndex();");
                        add0(src, "");

                        add2(src, "idx.setName(\"" + idx.getName() + "\");");
                        add0(src, "");

                        add2(src, (firstIdx ? "LinkedHashMap<String, Boolean> " : "") +
                            "idxFlds = new LinkedHashMap<>();");
                        add0(src, "");

                        for (Map.Entry<String, Boolean> idxFld : idx.getFields().entrySet())
                            add2(src, "idxFlds.put(\"" + idxFld.getKey() + "\", " + idxFld.getValue() + ");");

                        add0(src, "");

                        add2(src, "idx.setFields(idxFlds);");
                        add0(src, "");

                        add2(src, "idxs.add(idx);");
                        add0(src, "");

                        firstIdx = false;
                    }
                }

                add2(src, "qryEntity.setIndexes(idxs);");
                add0(src, "");
            }

            add2(src, "return qryEntity;");

            add1(src, "}");
            add0(src, "");
        }

        add1(src, "/**");
        add1(src, " * Configure cache.");
        add1(src, " *");
        add1(src, " * @param cacheName Cache name.");
        add1(src, " * @param storeFactory Cache store factory.");
        add1(src, " * @return Cache configuration.");
        add1(src, " */");
        add1(src, "public static <K, V> CacheConfiguration<K, V> cache(String cacheName," +
            " CacheJdbcPojoStoreFactory<K, V> storeFactory) {");